<script setup>
import TopMenu from "../components/TopMenu.vue";
import { useHead } from "@unhead/vue";

useHead({
  title: "Формат и структура DBF файлов: Полное руководство",
  meta: [
    {
      name: "description",
      content:
        "Узнайте о формате и структуре DBF файлов, популярном формате хранения структурированных данных в таблицах баз данных. Разберем подробности о заголовке и записях DBF файлов, а также предоставим исчерпывающую информацию о размерах полей и типах данных",
    },
    {
      name: "keywords",
      content:
        "формат DBF, структура DBF, DBF файлы, таблицы баз данных, заголовок DBF, записи DBF, размеры полей DBF, типы данных DBF",
    },
  ],
});
</script>
<template>
  <TopMenu></TopMenu>
  <div class="page">
    <h2>Форматы файлов DBF: Обзор основных стандартов и их характеристики</h2>
    <p>
      DBF (dBase File) - это формат файлов, используемый для хранения структурированных
      данных в таблицах баз данных. Несмотря на то, что формат DBF появился еще в 1980-х
      годах, он до сих пор используется в некоторых системах и программных продуктах.
      Давайте рассмотрим основные форматы файлов DBF и их характеристики.
    </p>
    <h3>DBF-III:</h3>
    <p>
      DBF-III является наиболее распространенным форматом DBF и имеет поддержку
      большинства систем управления базами данных. Он поддерживает различные типы данных,
      такие как числа, текст, даты и логические значения. DBF-III использует
      ASCII-кодировку для текстовых данных и может содержать до 255 полей. Он также
      поддерживает индексирование для ускорения поиска и сортировки данных.
    </p>
    <h3>DBF-IV:</h3>
    <p>
      DBF-IV является расширением формата DBF-III и добавляет некоторые дополнительные
      возможности. Он поддерживает дополнительные типы данных, такие как десятичные числа
      и двоичные данные. DBF-IV также улучшает производительность по сравнению с DBF-III и
      имеет более эффективные методы индексирования и поиска данных.
    </p>
    <h3>Visual FoxPro (DBF-V):</h3>
    <p>
      Visual FoxPro - это СУБД, разработанная компанией Microsoft, которая использует
      расширенный формат DBF. DBF-V поддерживает более сложные структуры данных, включая
      полиморфные поля, таблицы с несколькими уровнями и возможность хранения кода
      программы внутри файла DBF. Он также включает более продвинутые возможности
      индексирования и обработки данных.
    </p>
    <h3>FoxBASE+/dBASE III PLUS (DBF-III+):</h3>
    <p>
      DBF-III+ является расширением формата DBF-III и обеспечивает дополнительные функции,
      такие как поддержка SQL-запросов и более гибкие методы работы с данными. Он также
      добавляет поддержку длинных полей и может содержать до 255 символов в текстовом
      поле. DBF-III+ является обратно совместимым с DBF-III и может быть использован в
      существующих системах без изменений.
    </p>
    <h3>dBASE 7 (DBF-VII):</h3>
    <p>
      DBF-VII является наиболее новым форматом DBF, разработанным компанией dBASE, Inc. Он
      добавляет поддержку более сложных структур данных, таких как полиморфные поля,
      таблицы с несколькими уровнями и встроенные объекты. DBF-VII также поддерживает
      расширенные типы данных, такие как гиперссылки и контейнеры, что делает его более
      гибким и мощным форматом.
    </p>
    <p>
      Это лишь некоторые из основных форматов файлов DBF. Существует и другие вариации,
      которые разработаны для конкретных программных продуктов и систем управления базами
      данных. Однако вышеупомянутые форматы являются наиболее широко используемыми и
      охватывают большинство основных возможностей DBF.
    </p>
    <h2>Структура заголовка и записей DBF:</h2>
    <p>
      Ниже представлена таблица, содержащая исчерпывающую информацию о структуре заголовка
      и структуре записей в файлах DBF для различных версий формата:
    </p>
    <h3>Структура заголовка DBF:</h3>
    <table border="1">
      <tr>
        <th>Поле</th>
        <th>Размер (в байтах)</th>
        <th>Описание</th>
      </tr>
      <tr>
        <td>Signature</td>
        <td>1</td>
        <td>Сигнатура файла (0x03 - DBF-III, 0x83 - DBF-IV)</td>
      </tr>
      <tr>
        <td>Year</td>
        <td>1</td>
        <td>Год, когда файл был создан, вычитается 1900</td>
      </tr>
      <tr>
        <td>Month</td>
        <td>1</td>
        <td>Месяц, когда файл был создан</td>
      </tr>
      <tr>
        <td>Day</td>
        <td>1</td>
        <td>День, когда файл был создан</td>
      </tr>
      <tr>
        <td>HeaderLength</td>
        <td>2</td>
        <td>Длина заголовка (обычно 32 байта)</td>
      </tr>
      <tr>
        <td>RecordLength</td>
        <td>2</td>
        <td>Длина записи (включая удаленные флаги)</td>
      </tr>
      <tr>
        <td>RecordCount</td>
        <td>4</td>
        <td>Общее количество записей в таблице</td>
      </tr>
      <tr>
        <td>FieldDescriptors</td>
        <td>N*32</td>
        <td>Описания полей (по 32 байта на каждое поле)</td>
      </tr>
      <tr>
        <td>Terminator</td>
        <td>1</td>
        <td>Завершающий байт (0x0D)</td>
      </tr>
    </table>
    <h3>Структура записей DBF:</h3>
    <table border="1">
      <tr>
        <th>Поле</th>
        <th>Размер (в байтах)</th>
        <th>Описание</th>
      </tr>
      <tr>
        <td>Deleted Flag</td>
        <td>1</td>
        <td>Флаг удаления (0x20 - запись активна, 0x2A - запись удалена)</td>
      </tr>
      <tr>
        <td>Field 1</td>
        <td>N (зависит от типа поля)</td>
        <td>Значение поля 1</td>
      </tr>
      <tr>
        <td>Field 2</td>
        <td>N (зависит от типа поля)</td>
        <td>Значение поля 2</td>
      </tr>
      <tr>
        <td>Field N</td>
        <td>N (зависит от типа поля)</td>
        <td>Значение поля N</td>
      </tr>
    </table>
    <p>Примечания:</p>
    <ul>
      <li>
        Длина заголовка (HeaderLength) включает размер сигнатуры, даты создания, длины
        заголовка, длины записи, количества записей и размера завершающего байта.
      </li>
      <li>Длина записи (RecordLength) включает все поля и флаг удаления.</li>
      <li>
        Для каждого поля в структуре заголовка (FieldDescriptors) используются 32 байта,
        содержащие информацию о названии поля, типе данных, размере поля и других
        атрибутах.
      </li>
    </ul>
    <h3>Типы данных DBF:</h3>
    <table border="1">
      <tr>
        <th>Тип данных</th>
        <th>Обозначение</th>
        <th>Размер в байтах</th>
        <th>Описание</th>
      </tr>
      <tr>
        <td>Character</td>
        <td>С</td>
        <td>1 - 254</td>
        <td>Символьное поле</td>
      </tr>
      <tr>
        <td>Numeric</td>
        <td>N</td>
        <td>1 - 20</td>
        <td>Числовое поле</td>
      </tr>
      <tr>
        <td>Float</td>
        <td>F</td>
        <td>4</td>
        <td>Число с плавающей точкой</td>
      </tr>
      <tr>
        <td>Date</td>
        <td>D</td>
        <td>8</td>
        <td>Дата в формате ГГГГММДД</td>
      </tr>
      <tr>
        <td>Logical</td>
        <td>L</td>
        <td>1</td>
        <td>Логическое значение (Y, N, T, F, Д, Н, Да, Нет)</td>
      </tr>
      <tr>
        <td>Memo</td>
        <td>M</td>
        <td>10</td>
        <td>Поле для хранения больших объемов текста</td>
      </tr>
      <tr>
        <td>Binary</td>
        <td>B</td>
        <td>10</td>
        <td>Бинарное поле</td>
      </tr>
      <tr>
        <td>General</td>
        <td>G</td>
        <td>10</td>
        <td>Общее поле (неопределенного типа данных)</td>
      </tr>
    </table>
    <p>
      Обратите внимание, что размеры полей могут варьироваться в зависимости от конкретной
      версии DBF и используемой программы или СУБД. Указанные размеры представлены в общем
      виде и могут быть адаптированы для конкретных требований и контекста использования
      DBF-файлов.
    </p>
  </div>
</template>
